﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <vector>
#include <list>

using namespace std;



//int main()
//{
//	list<int> lt;
//	lt.push_back(1);
//	lt.push_back(2);
//	lt.push_back(3);
//	lt.push_back(4);
//	lt.push_back(5);
//	lt.push_back(6);
//	lt.push_back(7);
//	lt.push_back(8);
//
//	auto it = find(lt.begin(), lt.end(), 5);
//	reverse(lt.begin(), it);
//	for (auto e : lt)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//	reverse(it, lt.begin());
//	//list<int> ll(lt.begin(), lt.end());
//	for (auto e : lt)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//}

int main()
{
	int ar[] = { 0,1, 2, 3, 4,  5, 6, 7, 8, 9 };

	int n = sizeof(ar) / sizeof(int);

	list<int> mylist(ar, ar + n);

	list<int>::iterator pos = find(mylist.begin(), mylist.end(), 5);

	auto it1 = mylist.begin();
	auto it2 = mylist.end();
	reverse(mylist.begin(), pos);


	reverse(pos, mylist.end());

	list<int>::const_reverse_iterator crit = mylist.crbegin();

	while (crit != mylist.crend())
	{
		cout << *crit << " ";
		++crit;

	}

	cout << endl;
}